




sealed   class Animal{
    String name ;
    int age;
}
 final    class  Dog  extends Animal{

}
non-sealed  class petDog extends Animal{

}
sealed class  testDog extends Animal{

}
non-sealed class test2 extends testDog{

}

public class Test {
    public static void main4x(String[] args) {
         Animal animal = (Animal) new Dog();
         //简化前：
         if(animal instanceof Dog){
             Dog str = (Dog) animal;
         }
         //简化后：
         if(animal instanceof Dog str){
             System.out.println(str);

         }






    }

    public static void main(String[] args) {
        //空指针异常
        String name = null;
        System.out.println(name.toLowerCase());
        //在jdk8之前，控制值只会报对应的异常，而不会指出具体原因，但是在jdk9之后便会指出报错原因

    }
  /*  var name  ; //var关键字不能修饰类的属性即字段


    public var func1( var name){ //var关键字不能够作为方法返回值类型
                                               //var关键字也不能够修饰形参
    }
    */
    public static void main5(String[] args) {
        //var关键字
        //var关键用于通过变量值判断且代表变量的类型，这样对于类型复杂的变量可以提高代码的简洁度
        //因此var关键字修饰的变量必须初始化，不能为null
        var name = "zhangsan";
        var age = 14;
    }
    public static void main1(String[] args) {
        //yield关键字
        int ret1 = 5;
        switch(ret1) {
            case 1:
                System.out.println(1);
                break;
            case 2:
                System.out.println(2);
                break;
            case 3:
                System.out.println(3);
                break;
            default:
                System.out.println(4);
                break;
        }
        int ret2 = 5;
        switch(ret2) {
            //关于switch语句的简写
            case 1 -> System.out.println(1);
            case 2 -> System.out.println(2);
            case 3 -> System.out.println(3);
            default -> System.out.println(4);
        }
            //yield关键字用于代替->
           //case后面添加: ，yield后也加上:
            int ret3 = 5;
            switch(ret3){
                case 1: yield : System.out.println(1);
                case 2 : yield :  System.out.println(2);
                case 3 : yield : System.out.println(3);
                default : yield : System.out.println(4);
        }













    }

























}
